/*=============================================================================
* File Name : Log.cpp                              Ver : 1.00  Date : 2011/08/13
*
* Description :
*
*       ログ出力.
*
* Author : yuuki tsuchida.
*============================================================================*/
#include "Log.h"
#include <android/log.h>

#define _DEBUG

/** ログのタグ */
const std::string Log::LOG_TAG = "NDKCODE";

/*===========================================================================*/
/**
 * ログ情報の出力．
 *
 * @param [in]  format フォーマット．
 */
void Log::LOGI( const char* format, ... )
{
#ifdef _DEBUG
	int a;

	va_list argument_pointer;//←引数の先頭ポインタ格納

	va_start(argument_pointer, format);//←可変長引数の初期化

	char* str = 0;
	int size =vasprintf( &str, format, argument_pointer );

	__android_log_print( ANDROID_LOG_INFO, LOG_TAG.c_str() , str );

	va_end(argument_pointer);//←可変長引数のクローズ
	free( str );
#endif
}

/*===========================================================================*/
/**
 * ログ情報の出力．
 *
 * @param [in]  format フォーマット．
 */
void Log::LOGE( const char* format, ... )
{
#ifdef _DEBUG
	int a;

	va_list argument_pointer;//←引数の先頭ポインタ格納

	va_start(argument_pointer, format);//←可変長引数の初期化

	char* str = 0;
	int size =vasprintf( &str, format, argument_pointer );

	__android_log_print( ANDROID_LOG_ERROR, LOG_TAG.c_str() , str );

	va_end(argument_pointer);//←可変長引数のクローズ
	free( str );
#endif
}

/*===========================================================================*/
/**
 * ログ情報の出力．
 *
 * @param [in]  format フォーマット．
 */
void Log::LOGD( const char* format, ... )
{
#ifdef _DEBUG
	int a;

	va_list argument_pointer;//←引数の先頭ポインタ格納

	va_start(argument_pointer, format);//←可変長引数の初期化

	char* str = 0;
	int size =vasprintf( &str, format, argument_pointer );

	__android_log_print( ANDROID_LOG_DEBUG, LOG_TAG.c_str() , str );

	va_end(argument_pointer);//←可変長引数のクローズ
	free( str );
#endif
}

/*===========================================================================*/
/**
 * ログ情報の出力．
 *
 * @param [in]  format フォーマット．
 */
void Log::LOGV( const char* format, ... )
{
#ifdef _DEBUG
	int a;

	va_list argument_pointer;//←引数の先頭ポインタ格納

	va_start(argument_pointer, format);//←可変長引数の初期化

	char* str = 0;
	int size =vasprintf( &str, format, argument_pointer );

	__android_log_print( ANDROID_LOG_VERBOSE, LOG_TAG.c_str() , str );

	va_end(argument_pointer);//←可変長引数のクローズ
	free( str );
#endif
}

/*===========================================================================*/
/**
 * ログ情報の出力．
 *
 * @param [in]  format フォーマット．
 */
void Log::LOGW( const char* format, ... )
{
#ifdef _DEBUG
	int a;

	va_list argument_pointer;//←引数の先頭ポインタ格納

	va_start(argument_pointer, format);//←可変長引数の初期化

	char* str = 0;
	int size =vasprintf( &str, format, argument_pointer );

	__android_log_print( ANDROID_LOG_WARN, LOG_TAG.c_str() , str );

	va_end(argument_pointer);//←可変長引数のクローズ
	free( str );
#endif
}

/*========= End of File =====================================================*/
